<?php

class AdmRegistro extends TPage {

    public function onLoad($param) {
        parent::onLoad($param);
        if (!$this->IsPostBack) {
            $this->actualizarIntefaz();
        }
    }

    private function actualizarIntefaz() {
        $arr = $this->obtenerDatos();
        $this->iniciarControles($arr);
        $this->mostrarMensaje();
    }

    private function obtenerDatos() {
        $arg = $this->Request["a"];
        if (!Util::isNullOrEmpty($arg)) {
            $id = Util::desencriptarUrl($arg, "id");
            $this->setViewState("id", $id);
            $oServicioBLL = new ServicioBLL();
            $arr = $oServicioBLL->obtenerPorId($id);
        } else {
            $this->setViewState("id", "-1");
            $arr = array();
        }

        return $arr;
    }

    private function iniciarControles($arr) {
        $id = $this->getViewState("id");

        if (count($arr) > 0) {
            $oServicio = new Servicio();
            $oServicio = $arr;

            $strNombre = $oServicio->getNombre();
        } else {
            $strNombre = "";
        }

        $this->ltTitulo->Text = (($id == "-1") ? "Nuevo" : "Modificar") . " Servicio";
        $this->txtNombre->Text = $strNombre;
        $this->btnEliminar->Visible = ($id == "-1") ? false : true;

        $arrEliminar = array(
            "idRegistro" => $id,
            "urlAjax" => "Servicio.Ajax",
            "opcionAjax" => "Eliminar",
            "urlRespuesta" => "Servicio.AdmListar",
            "parametrosUrlRespuesta" => ""
        );
        $opcionesEliminar = Util::jsonOpcionesEliminar($arrEliminar);
        $this->btnEliminar->Attributes->Add("onclick", "eliminarRegistro(" . $opcionesEliminar . ")");
    }

    private function mostrarMensaje() {
        $arg = $this->Request["a"];
        if (!Util::isNullOrEmpty($arg)) {
            $tipoMensaje = Util::desencriptarUrl($arg, "tipoMensaje");
            $mensaje = Util::desencriptarUrl($arg, "mensaje");

            if (!Util::isNullOrEmpty($mensaje)) {
                Util::mostrarMsj($this->Page, "da-ex-val-error", $mensaje, $tipoMensaje);
            }
        }
    }

    public function btnGrabarClick($sender, $param) {
        $id = $this->getViewState("id");
        $oServicio = new Servicio();
        $oServicio->setId($id);
        $oServicio->setNombre($this->txtNombre->Text);
        $oServicio->setEstado("1");
        $oServicioBLL = new ServicioBLL();
        $mensaje = "";
        $tipoMensaje = "";

        if ($id == "-1") {
            $resultado = $oServicioBLL->grabar($oServicio);
            if (is_numeric($resultado)) {
                $id = $resultado;
            }
        } else {
            $resultado = $oServicioBLL->editar($oServicio);
        }

        if (!Util::isNullOrEmpty($resultado) && !is_numeric($resultado)) {
            $tipoMensaje = Util::MENSAJE_ERROR;
            $mensaje = $resultado;
        } else {
            $tipoMensaje = Util::MENSAJE_OK;
            $mensaje = "El registro fue grabado con &eacute;xito";
        }

        $arg = Util::encriptarUrl(array(
                    "id" => $id,
                    "tipoMensaje" => $tipoMensaje,
                    "mensaje" => $mensaje
                        )
        );

        if ($tipoMensaje == Util::MENSAJE_OK) {
            $this->Response->Redirect("index.php?page=Servicio.AdmListar&a=" . $arg);
        } else {
            $this->Response->Redirect("index.php?page=Servicio.AdmRegistro&a=" . $arg);
        }
    }

}

?>
